const fs = require("fs");


// insert({要插入的数据},function(res){},function(error){})

// 从前端接收到的要存储到数据库的数据
insert({name:"Admin",age:18},res=>{
    console.log(res, "success")
},err=>{
    console.log(err, "error")
})

// 增：写文件，会覆盖文件的原有内容
// 为了实现增加的效果，需要先读，读完之后，操作数据，再做写入
// 先读
function insert(obj, a, b){
    fs.readFile("./database/msg.json","utf-8",(err, data)=>{
        if(err){
            b("读取失败")
        }else{
            // console.log(data + JSON.stringify(obj))      x
            // 解析初始数据，并做默认处理，默认是数组
            const arr = data ? JSON.parse(data) : [];
            // 向数组中添加数据
            obj.id = Date.now();
            arr.push(obj);
            // 将数组转成json，再存回去
            fs.writeFile("./database/msg.json", JSON.stringify(arr), err=>{
                if(err){
                    b("增加失败");
                }else{
                    a("增加成功");
                }
            })
        }
    })
}

// 删
// 先从前端获取到要删除的数据的id
// 根据id"删"除数据
// 先读，筛选符合id的数据，将这个数据，从数组中删除，之后，再存回去
// delete({id:"xxxxx"}, function(res){}, function(err){})

// 改
// 先从前端获取到要修改的数据的id
// 根据id修改数据
// 先读，筛选符合id的数据，修改这个数据，之后，再存回去
// update({id:"xxxxx"}, {改成什么}, function(res){}, function(err){})

// 查
// 直接读
// select(function(res){},function(error){})
// selectOne({id:xxxxxx},function(res){},function(error){})
